/**
 * Iniciação Científica - SAE-CNPQ - 2013/2013
 * autor: Agnaldo A Esmael
 * Orientadores: Prof. Dr Ricardo Torres e Dr. Jefersson A Santos
 */

package control;

import java.awt.image.BufferedImage;
import java.util.ArrayList;
import javax.media.jai.PlanarImage;
import util.PixelAnotado;

/**
 * Interface utilizada para armazenar os dados utilizados varias vezes ao 
 * longo do programa.
 * 
 * Eh acessado principalmente pelas classes TrataEventosPrincipal e Transfer.
 *  
 * @author agnaldo
 *
 */

public interface Dados {

	/**
	 * Retorna uma BufferedImagem que é uma cópia da ISR que está sendo classificada 
	 */
	 java.awt.image.BufferedImage getBufferedImage();

	/**
	 * Substitui a BufferedImagem usada na marcação do usuário
	 * @param copyImage TODO
	 */
	 void setBufferedImage(BufferedImage copyImage);

	/**
	 * Permite acessar o ArrayList com os pixels rotulados pelo usuário durante a etapa de "Anotação do Usuário".
	 */
	 java.util.ArrayList<PixelAnotado> getUserAnotation();

	/**
	 * Atualiza o ArrayList inserindo um nova lista de pixels anotados pelo usuário
	 */
	 void setUserAnotation(ArrayList<util.PixelAnotado> arrayList);	
	 
	 /**
	  * Permite acessar o ArrayList com o resultado de uma rodada de classificação
	  */
	 java.util.ArrayList<PixelAnotado> getClassificationResult(); 

	 /**
	  * Atualiza o ArrayList inserindo o resultado de uma rodada de classificação
	  */
	void setClassificationResult(java.util.ArrayList<PixelAnotado> vetorResultado);

	/**
	 * Obter fator de zoom atualmente em uso
	 */
	public float getZoom();

	/**
	 * Atualiza fator de zoom utilizado
	 */
	public void setZoom(float zoom);

	/**
	 * Recuperar a imagem original no formato PlanarImage da biblioteca JAI
	 */
	public javax.media.jai.PlanarImage getImage();

	/**
	 * Armazenar a imagem original selecionada pelo usuário no formato PlanarImage da biblioteca JAI
	 */
	 void setImage(PlanarImage image);

	/**
	 * Limpar todos os dados. 
	 */
	 void clean();


}//fim da Interface Dados
